<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>

<body>
    <script>
        //声明一个函数
        let fn = function () {
            console.log('sun');
        }
        fn();
        //声明一个箭头函数
        let fn1 = (a, b) => {
            return a + b;
        }
        let sum = fn1(1, 3);
        console.log(sum);

        //箭头函数this是静态的，this指向函数声明时作用域下的this的值

        function getName() {
            console.log('普通函数' + this.name);
        }
        let getName1 = () => {
            console.log('箭头函数' + this.name);
        }

        window.name = 'sun';
        const stu = {
            name: 'jinyao',
        }
        getName();
        getName1();
        //call方法调用
        getName.call(stu);
        getName1.call(stu);

        //4  不能作为构造实例化对象
        // let person=(name,age)=>{
        //     this.name=name;
        //     this.age=age;
        // }
        // let me=new Person('sun',18);
        // console.log(me);

        //5  不能使用arguement变量
        // let fnn = () => {
        //     console.log(arguement);
        // }
        // fnn(1, 2, 3);   //报错

        //6  箭头函数一个型参数时可省略形参括号
        //6  函数体内只有一条语句时可省略花括号和return(必省)
        let add = n => n + n;
        console.log(add(5));

    </script>
</body>

</html>